package provapratica;

import java.util.Random;

public class Nfe {
    private int numero;
    private String data;
    private PessoaJuridica emitente;
    private Pessoa cliente;
    private double valor;
    private Arquivo arquivo;

    public Arquivo getArquivo() {
        return arquivo;
    }

    public void setArquivo(Arquivo arquivo) {
        this.arquivo = arquivo;
    }

    public Pessoa getCliente() {
        return cliente;
    }

    public void setCliente(Pessoa cliente) {
        this.cliente = cliente;
    }

    public String getData() {
        return data;
    }

    public void setData(String data) {
        this.data = data;
    }

    public PessoaJuridica getEmitente() {
        return emitente;
    }

    public void setEmitente(PessoaJuridica emitente) {
        this.emitente = emitente;
    }

    public int getNumero() {
        return numero;
    }

    public double getValor() {
        return valor;
    }

    public void setValor(double valor) {
        this.valor = valor;
    }

    public void setNumero(int numero) {
        this.numero = numero;
    }
    
    public void emitirNfe() {
        Random aleatorio = new Random();
        setNumero(aleatorio.nextInt(99999));
        System.out.println("Nfe " + numero);
        System.out.println("Data de emissão: " + data);
        System.out.println("Emitente: " + emitente.getRazaoSocial());
        System.out.println("Cliente: " + ((PessoaFisica)cliente).getNome() );
        System.out.println("Valor total da nota: " + valor);
        gerarArquivo();
        System.out.println("Arquivo Nfe vinculado: " + arquivo.getNome());
        System.out.println("Nota Fiscal Eletrônica emitida com sucesso!");
    }
    
    protected void gerarArquivo() {
        Arquivo arq1 = new Arquivo();
        arq1.setNome("nfe"+ getNumero() + ".xml");
        Random aleatorio = new Random();
        arq1.setTamanho(aleatorio.nextInt(9999)+1);
        setArquivo(arq1);
    }
}
